#!/bin/bash
log_file_name="`pwd`/docker_clean_cront.log"
echo -e  "$(date "+%Y-%m-%d %H:%M:%S")" >> $log_file_name
echo -e  "清理前的内存空间 \n $(docker system df)" >> $log_file_name
docker system prune -a -f &>> $log_file_name
if [ $? -eq 0 ] ; then
        echo -e  "清理内存情况  \n  `docker system df`" &>> $log_file_name
# 如果docker版本过低没有办法使用System命令，执行自定义清理
else
        # 清除状态为Exit的容器
        docker rm $(docker ps -a| grep Exit| cut -d ' ' -f 1) >>$log_file_name 2>> /dev/null
        # 删除没用的docker镜像
        docker rmi $(docker images| grep "^<none>"| awk "{print $3}") >> $log_file_name 2>> /dev/null
        # 删除没有用的容器卷
        docker volume rm $(docker volume ls -qf dangling=true) >> $log_file_name 2>> /dev/null
        echo -e  "自定义清理内存情况  \n  `docker system df`" &>> $log_file_name
fi
